/* 
nodejs里的模块化  commonjs规范
一.引入文件模块
每个文件会有独立的命名空间,相互之间不会影响
导入: require("./路径地址.js");
导出:
    1.module.exports (多)
    2.exports
*/

// let { a } = require("./a.js");
// let obj = require("./a.js");
// console.log("我是index.js入口文件");
// obj.fn();

/* 
二. 引入 目录模块
1.目录模块  ./也不可省略
let obj=require("./amodule/index.js");
*/
//自动查找目录下的index.js文件
let obj = require("./amodule");
console.log(obj);

/* 
2.通过配置文件修改单入口
新建一个package.json 文件修改 单入口
npm init 快速创建一个package.json 文件
注意: 模块名称不能是中文
*/


/* 
三.引入第三方模块,引入指定 目录的模块  node_modules
注意: 不要加 ./
*/
// let bmodule = require("bmodule");
// console.log(bmodule);

let http = require("http");


/* 
npm : node 的包管理工具
npm: npm init  初始化一个package.json 文件
npm: 下载第三方模块
npm install 模块名 : https://npmjs.com/
npm i 模块名
*/

/* 
node_modules  模块会自动向上查找
引入 node_modules时候会先在同级查找  如果找不到  会向上层目录查找,最终会找到系统的根目录

优先级: commonjs 规范  模块名称一样的前提下  会优先引入  文件模块,在引入 目录模块  在引入 node_modules模块
elementui vue2.0  element2
*/

/* 
四.默认 require()  会引入 js文件
可以自动编译 .json  和 .node  文件后缀
*/

// let data = require("./data.json");
// // console.log(typeof data);
// data.forEach(item=>{
//     console.log(item.name);
// })